home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / ABUSESRC.ZIP / AbuseSrc / abuse / src / putline2.asm < prev    next >
Assembly Source File  |  1996-01-22  |  1KB  |  77 lines

  1.  
  2.     .386
  3.     .MODEL    small 
  4.  
  5. .code
  6.  
  7. ; parm1 = scrn addr
  8. ; parm2 = remap addr
  9. ; parm3 = scrwidth
  10.  
  11. ALIGN 16
  12. PUBLIC    remap_line_asm_
  13. remap_line_asm_:
  14.  
  15.     push    ebp
  16.     push    esi
  17.     push    edi
  18.     sub        esp, 32
  19.  
  20.     mov        esi, eax    ; esi = screen addr
  21.     mov        eax, edx    ; eax = remap_table
  22.     mov        edi, ebx    ; edi = remap_seq
  23.     mov        ebp, ecx    ; ebp = remap_seq_len
  24.  
  25.     mov        ah, [edi]
  26.     mov        ebx, eax
  27.     jmp        remap_loop
  28.  
  29. ALIGN    16
  30. remap_loop:
  31.  
  32.     mov        al, [esi]
  33.     mov        bl, 1[esi]
  34.     mov        al, [eax]
  35.     mov        bl, [ebx]
  36.     mov        [esi], al
  37.     mov        1[esi], bl
  38.  
  39.     add        edi, 1
  40.     mov        al, 2[esi]
  41.     mov        bl, 3[esi]
  42.     mov        al, [eax]
  43.     mov        bl, [ebx]
  44.     mov        2[esi], al
  45.     mov        3[esi], bl
  46.  
  47.     mov        al, 4[esi]
  48.     mov        bl, 5[esi]
  49.     mov        al, [eax]
  50.     add        esi, 8
  51.     mov        bl, [ebx]
  52.     mov        -4[esi], al
  53.     mov        -3[esi], bl
  54.  
  55.     dec        ebp
  56.     mov        al, -2[esi]
  57.     mov        bl, -1[esi]
  58.     mov        al, [eax]
  59.     mov        bl, [ebx]
  60.     mov        -2[esi], al
  61.     mov        -1[esi], bl
  62.  
  63.     mov        ah, [edi]
  64.     mov        ebx, eax
  65.     jne        remap_loop
  66.  
  67.     add        esp, 32
  68.     pop        edi
  69.     pop        esi
  70.     pop        ebp
  71.     ret
  72.  
  73. ; ENDP
  74.  
  75. END
  76.  
  77.